package com.ruoyi.project.gxgw_modules.discountManager.service;

import com.ruoyi.project.gxgw_modules.discountManager.domain.YhqType;

import java.util.List;
import java.util.Map;

/**
 * 优惠券类型 服务层
 * 
 * @author ruoyi
 * @date 2019-01-16
 */
public interface IYhqTypeService 
{
	/**
     * 查询优惠券类型信息
     * 
     * @param typeId 优惠券类型ID
     * @return 优惠券类型信息
     */
	public YhqType selectYhqTypeById(Integer typeId);
	
	/**
     * 查询优惠券类型列表
     * 
     * @param yhqType 优惠券类型信息
     * @return 优惠券类型集合
     */
	public List<YhqType> selectYhqTypeList(YhqType yhqType);
	
	/**
     * 新增优惠券类型
     * 
     * @param yhqType 优惠券类型信息
     * @return 结果
     */
	public int insertYhqType(YhqType yhqType);
	
	/**
     * 修改优惠券类型
     * 
     * @param yhqType 优惠券类型信息
     * @return 结果
     */
	public int updateYhqType(YhqType yhqType);

	/**
	 * 删除优惠券类型
	 *
	 * @param typeId 优惠券类型ID
	 * @return 结果
	 */
	public int deleteYhqTypeById(Integer typeId);
		
	/**
     * 删除优惠券类型信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteYhqTypeByIds(String ids);


	/**
	 * 改变优惠券delFlag删除优惠券类型
	 *
	 * @param typeIds 需要删除的id
	 * @Qreturn 结果
	 */
	public int deleteYhqTypeDelFlagByIds(String ids);

	/**
	 * 校验部门名称是否唯一
	 *
	 * @param yhqType 部门信息
	 * @return 结果
	 */
	public String checkYhqTypeNameUnique(YhqType yhqType);

	/**
	 * 查询优惠类型是否存在优惠券
	 * @param typeId 类型id
	 * @return 结果true存在，false不存在
	 */
	public boolean checkTypeExistYhq(Integer typeId);

	/**
	 * 查询优惠券类型数量
	 *
	 * @param fId 父部门ID
	 * @return 结果
	 */
	public int selectYhqTypeCount(Integer fId);

	/**
	 * 查询优惠类型树
	 *
	 * @param yhqType 优惠类型
	 * @return 所有类型信息
	 */
	public List<Map<String, Object>> selectTypeTree(YhqType yhqType);
	
}
